x

Configuration Management

  • Shell scripts: Imperative (action only)
  • Ansible: Declarative (action, but checks state)
  • Nix: Declarative, but manages state, not just perform predefined actions.

Types of system management

  • Divergent: The system deviates from the configuration management
  • Convergent: The system is brought closer to the configuration management (Ansible, Puppet, Chef, CFEngine)
  • Congruent: The system is forced to be in the same state as the configuration management (Nix)

Source: https://flyingcircus.io/blog/thoughts-on-systems-management-methods/

Related

  • Vagrant: VM Manager, usually on top of Virtualbox, but can be used with other VMs
  • chezomoi: Dotfiles manager
  • GNU Stow: Symlink farm manager, also used as a dotfile manager
  • git bare repos: Used to store dotfiles, but the setup is a bit clunky, although easy. Doesn't handle multiple profiles.
Left-click: follow link, Right-click: select node, Scroll: zoom
x